Large-scale World Wide Web (“Web” or “WWW”) sites typically utilize large clusters, or “farms,” of Web servers to respond to incoming Web page requests. Because the volume of requests received at popular Web sites can be enormous, literally thousands of separate Web server computers may be utilized in such a Web server farm. When a request is received for a Web page available through the Web server farm, the request is assigned to one of the available Web server computers through the use of a load balancing device. By receiving Web page requests at a central location and then routing the request to an available Web server computer in this manner, a large volume of requests may be easily handled. However, while server farms configured in this manner can respond to a large number of Web page requests efficiently, the configuration and maintenance of thousands of Web server computers can be extremely time consuming and expensive.
One of the difficulties in configuring a large group of Web server computers arises from the fact that each server computer utilizes unique configuration files. For instance, the location of a particular server computer in the network may cause its configuration files to be different from the configuration files on other server computers located at other locations in the network. If a server computer is moved to a different location within the network, it may not function properly in its new location because the configuration files correspond to the previous location of the computer. Such a problem can be extremely difficult to diagnose when thousands of server computers are utilized.
Another difficulty that arises when a large-scale farm of Web servers is utilized occurs when it is necessary to “brand” the Web site for different business partners. Because the domain name to which a particular Web server responds is fixed in the configuration file, the Web server can only respond to requests from that specific domain. For instance, a Web server for providing Web-based e-mail services that is configured to receive requests for the “www.hotmail.com” domain can only respond to requests for that particular domain. If a business partner wanted to provide a branded Web-based e-mail service using the same functionality at another domain, an entirely separate Web server computer would have to be utilized to provide the branded Web site. Therefore, much of the capability of the Web server would have to be recreated for the branded Web site.
One solution to the above-described problems is to utilize a single configuration file to dynamically configure multiple server computers. When a request is received at any server computer, the server computer dynamically configures itself utilizing the contents of a global configuration file. The global configuration file contains configuration settings that may or may not be utilized by the server computer when configuring itself To determine if particular configuration settings should be utilized by the server computer when configuring itself, the server computer parses rules also contained in the global configuration file. If a rule is evaluated as true, configuration settings associated with the rule are used by the server computer when configuring itself The server computer can then respond to the request utilizing a dynamic configuration.
Using a common global configuration file to configure many server computers reduces the amount of time necessary to maintain each server because only a single configuration file is used. However, as the size of the global configuration file gets large, it becomes more and more difficult for system maintenance personnel to determine whether the global configuration file will correctly configure each server computer under different conditions. For instance, it may be difficult for maintenance personnel to determine whether a particular configuration file contains syntax errors, or whether the configuration file will generate conflicting settings or inconsistent related settings when utilized.
Therefore, in light of the above problems, there is a need for a method and system for verifying a global configuration file that can easily and quickly determine whether a configuration file is correct. Moreover, there is a need for a method and apparatus for verifying a global configuration file that can determine whether the configuration file will generate conflicting settings or inconsistently set related settings when utilized.